using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


/// <summary>
/// 这个类完全是运行时的一个参数库, 可能需要外部转发, 也可能需要上报到全局数据库, 
/// </summary>
public class VActProcessorData : MonoBehaviour
{
    //这个地方用来存放技能交互中的数据
    //有一个问题是如果回调没有注册在有生命周期的对象上, 就需要手动管理这些回调的周期, 得拿到回调柄才能操作

    //而且参数也有生命周期, 回调也有生命周期, 我服了  先不管了, 用出问题再说 , 其实可以直接DataSystem写全局
    //因为有clip , skill , Actor几个时间周期
    //作用Actor , DataSystem几个范围周期, 所以应该问题不大
    public Dictionary<string, string> pData = new();
    public Action<string, string> onWriteParam;
    public void Write(string key, string value)
    {
        if (pData.TryGetValue(key, out var oldValue) && oldValue == value) return;
        pData[key] = value;
        onWriteParam?.Invoke(key, value);
    }

    public Dictionary<string ,object> cache = new();
}
